import moment from 'moment';

export const rangedate2str = (obj, fmt='YYYY-MM-DD') => { // 时间区间
  const start = obj ? obj[0].format(fmt) : '';
  const end = obj ? obj[1].format(fmt) : '';
  return [start, end];
}

export const date2str = (obj, fmt='YYYY-MM-DD') => { // 时间点
  return obj ? obj.format(fmt) : '';;
}

export const today = (fmt='YYYY-MM-DD') => moment().format(fmt);

export const todayDate = (fmt='YYYY-MM-DD') => moment().format(fmt);

export const todayMoment = () => moment();


// 本日/本周/本月/本季/本年比较简单
// scope分别为/day/week/month/quarter/year

// const startDate =moment().startOf(scope).valueOf()；//.valueOf()获取到的是Long，不然就是一个Moment对象
// const endDate = moment().valueOf()；//获取的是当前系统时间

// 上周一00:00:00~周日23:59:59, 格林威治时间，不是moment/date
export const lastWeekPeriod = () => {
  const startDate = moment().week(moment().week() - 1).startOf('week').valueOf();
  const endDate = moment().week(moment().week() - 1).endOf('week').valueOf();

  return { startDate, endDate};
}

// 上个月一号的00:00:00~上个月最后一天的23:59:59
export const lastMonthPeriod = () => {
  const startDate = moment().month(moment().month() - 1).startOf('month').valueOf();
  const endDate = moment().month(moment().month() - 1).endOf('month').valueOf();

  return { startDate, endDate};
}

export const lastMonthDate = () => {
  return moment().month(moment().month() - 1).startOf('month').format("YYYY-MM-DD");
}

export const lastMonthMoment = () => {
  return moment().month(moment().month() - 1).startOf('month');
}

export const curMonthMoment = () => {
  return moment().month(moment().month()).startOf('month');
}

// 上个季度第一个月一号的00:00:00~上个季度最后一个月最后一天的23:59:59
export const lastSeasonPeriod = () => {
  const startDate = moment().quarter(moment().quarter() - 1).startOf('quarter').valueOf();
  const endDate = moment().quarter(moment().quarter() - 1).endOf('quarter').valueOf();

  return { startDate, endDate};
}

// 为何每次都是声明一个常量/变量，是因为如果按以下代码写,你会发现你的startDate也变成了当天的结束时间。
// let startDate = moment().startOf('day');
// let endDate = startDate().endOf('day');